package grafica;

import java.awt.Color;
import java.awt.Graphics;


public abstract class FormaComposita implements Forma{

		private Forma []forme;
		private Color colore;
		/**
		 * @return the colore
		 */
		public Color getColore() {
			return colore;
		}
		/**
		 * @param colore the colore to set
		 */
		public void setColore(Color colore) {
			this.colore = colore;
		}
		
		public FormaComposita(){
			
		}
		
		public FormaComposita(Forma[] forme) {
			super();
			this.forme = forme;
		}

		public void draw(Graphics oggetto) {
			Color valore=oggetto.getColor();
			oggetto.setColor(colore);
			for(int i=0;i<forme.length;i++)
				forme[i].draw(oggetto);
			oggetto.setColor(valore);
		}
		
		/**
		 * @return the forme
		 */
		public Forma[] getElencoForme() {
			return forme;
		}
		
		/**
		 * @param forme the forme to set
		 */
		public void setElencoForme(Forma[] forme) {
			this.forme = forme;
		}
		
		public boolean intersezioneRettangolo(RettangoloBase istanza) {
			for(int i=0;i<forme.length;i++){
				if(forme[i].intersezioneRettangolo(istanza))
					return true;
			}
			return false;
		}
		
		public boolean puntoAppartenenza(int x,int y) {
			for(int i=0;i<forme.length;i++){
				if(forme[i].puntoAppartenenza(x, y))
					return true;
			}
			return false;
		}
}

